For the global algorithm, PR-TT calculates the total scores for all possible pairs between each job and each truck in the final job list and final TT list. This results in a cost matrix that determines the best dispatches for all combinations of jobs and trucks.
However, before calculating the score for each job and truck pair, PR-TT performs various checks to determine which job and truck pairs are not feasible. During the previous stage when creating the final job list, PR-TT ran some of these checks for idle trucks. Now some of these checks are performed again for all trucks while some are still only performed for idle trucks. The following table lists the checks performed:
Validation |
Idle trucks only? |
---|---|
Is the CHE capable of handling the job? |
No |
Is the job too far ahead in the sequence based on EC parameters GLBSQO and GLBSQY? |
No |
Does the job have an invalid travel time? |
No |
Is there a prior load move that is not dispatched or not being carried yet? |
Yes |
Does the job violate yard crane MaxPMs limits? |
Yes |
Does the job violate POW MaxPMs limits? |
Yes |
After completing all of the above validity checks, PR-TT performs some additional checks while calculating the score for each job and truck pair. If any of the checks fail, then PR-TT removes that job and truck pair from consideration. This means that at the end, PR-TT does not dispatch that particular job to that specific truck, but PR-TT checks all job and truck pairs and may dispatch that job to another feasible truck.
The following table lists the steps that PR-TT executes for each job and truck pair while adding any calculated costs, scores, or penalties to the final score at the end.
Validation/Score |
Description |
Formula |
---|---|---|
Travel cost |
Determines travel cost using the travel time from the last position of the truck. |
Travel cost = TravelSeconds * GLBWMD/100 |
Earliest check |
Checks if the truck will be too early for a job. If the formula is true, then the truck is too early for the job and the check fails. |
A + B – C < 0 Where A is the TT scheduled finish time, B the travel seconds to job, and C the job's EFT. |
Twin lateness check |
Checks if the truck will be late for twinned moves. If the formula is true, then the truck is too late for the twinned job and the check fails. |
A + B - C > D Where A is the TT scheduled finish time, B is the travel seconds to twinned job, C is the twinned job's LFT, and D is a lateness threshold of ten minutes (not user-configurable) for twinned jobs. |
Lateness score |
Determines lateness, which is one of the main factors in score calculation. Penalizing a late move is critical during this process. To calculate the lateness score, first PR-TT calculates the lateness time in seconds. Once lateness time is calculated, PR-TT calculates the lateness score. However, PR-TT also checks how late the truck will be based on lateness time. If the truck will be really late, then PR-TT calculates double the excess lateness based on a threshold and adds this to the lateness score. This ensures that very late jobs are dispatched as soon as possible by exaggerating their scores. Lateness time is capped at 600 seconds. (DOC-2453) |
LateSeconds = Max (0, A + B - C) Where A is the TT scheduled finish time, B is the travel seconds to job, and C is the job's LFT. if LateSeconds >= 600 then; (DOC-2453) LateSeconds = Minimum of (LateSeconds, 600) then again if LateSeconds >= 600 then print the message "LateSeconds is capped at 600".
Lateness score = (LateSeconds / 10 )* Lateness priority Where Lateness priority is different for vessel, rail, and yard moves and is set by one of the EC parameters GLBLJV (for vessel), GLBLJR (for rail), or GLBLJY (for yard).
However, if: LateSeconds > doubleLatenessAfterThisSeconds
Then add the following to the Lateness score: ((LateSeconds - doubleLatenessAfterThisSeconds) / 10 )* Lateness priority Where doubleLatenessAfterThisSeconds is equal to one third of the POW's push rate interval. |
Max travel distance penalty |
Determines if a max travel distance penalty applies and the value of this penalty. If the travel distance from the truck's position to a job exceeds 600, then the max travel distance penalty applies, otherwise the penalty does not apply. The value of 600 is not user-configurable. |
Max travel distance penalty = (distance/50)* Travel parameter Where the Travel parameter for vessel, rail, and yard moves is set by one of the EC parameters GLBTPV (for vessel), GLBTPR(for rail), or GLBTPY (for yard). |
Prioritized job score |
Determines the prioritized job score for prioritized jobs. This score is a negative value to make the prioritized job more attractive. If the job is prioritized, PR-TT adds -80 points to the score. The point value is not user-configurable. |
Prioritized job score = -80 |
MaxPM violation penalty |
Determines if a MaxPMs violation penalty applies. PR-TT is allowed to exceed the MaxPMs limit of a POW by one dispatch. If the truck and job pair under consideration is dispatched and exceeds the MaxPMs by one, then PR-TT adds a penalty equal to the value of the EC parameter GLBMMV. |
MaxPM violation penalty = GLBMMV |
Min moves violation penalty |
Determines whether a negative penalty is added to the job to make the job and truck pair more attractive to attempt to meet the MinPMs limit for the POW. If the number of dispatched jobs in POW plus the job order number in the work queue for the job being considered is less than or equal to the MinPMs limit for the POW, then PR-TT adds a negative penalty to make this truck and job pair more attractive. |
Job order number + number of dispatched jobs in that POW < MinPMs limit If the above is true, PR-TT adds the min moves penalty to the job under consideration. The min moves penalty for vessel, rail, and yard moves is set by the most appropriate of the EC parameters GLBMIV (for vessel), GLBMIR (for rail), or GLBMIY (for yard). For the heuristic method, PR-TT checks: number of dispatched jobs in that POW < MinPMs limit |
Job order penalty |
PR-TT adds a very small penalty based on the job order number to make sure moves are dispatched in sequence in case of a tie. A tie is when two job and truck pairs have the same score. |
Job order penalty = 1 + Job order number |
At the end of these calculations, PR-TT calculates the total score for the job and truck pair under consideration and adds this total score to the scoring matrix. PR-TT executes the above steps for all of the possible job and truck pairs and adds each total score to the scoring matrix. If a check fails, then PR-TT adds a dash (-) to the scoring matrix for the failing job and truck pair.
If twinned or paired jobs exist, the scoring matrix displays only the first companion of the twinned or paired job, but PR-TT considers both jobs together.
Once PR-TT has created the scoring matrix and filled it with all of the possible total scores, then this becomes an optimization problem. PR-TT uses the global algorithm to solve the optimization problem and determine the best job and truck pair that minimizes the total score. Then the best pairs are sent to the dispatching mechanism.